import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '@/store'
// 路由懒加载，当地址是login的时候，才会加载login组件，节省了效率
const Login = () => {
  return import('@/views/login')
}
// 简写或直接写在路由中
const layout = () => import('@/views/layout')
Vue.use(VueRouter)

const routes = [
  { path: '/login', component: Login },
  {
    path: '/',
    component: layout,
    children: [
      { path: 'article', component: () => import('@/views/article') },
      { path: 'dashboard', component: () => import('@/views/dashboard') }
    ]
  }
]

const router = new VueRouter({
  routes
})

// 加入导航守卫，如果没有登录，则不允许访问其他网页
router.beforeEach((to, from, next) => {
  // to.path 是即将要访问的地址
  // from.path 是从哪个地址跳转过来的
  // next 是一个函数，调用该函数，才能进入下一个路由
  // next('/login') 跳转到登录页面
  // next() 进入下一个路由
  if (to.path !== '/login' && store.state.user.token === '') {
    next('/login')
    return
  }
  next()
})

export default router
